Hardware vendors are under increased pressure to design processors, computing systems and servers that offer improved performance and scalability, particularly for enterprise application software of the type that is used in larger data centers and businesses. Hardware optimizations may require real-time application performance monitoring in order to implement dynamic optimization techniques. Application software performance, however, often depends on specific software implementation details which are not generally known to the hardware vendor since the software is typically developed by independent software vendors. The hardware vendors generally have no way to predict which specific applications will be running on a given server or what specific behaviors are likely to be associated with those applications.
Existing methods for monitoring software application performance rely on cooperation from the software vendor to develop performance monitoring tools that are specifically tailored to the application. In other words, a priori knowledge of operational details of the application is required. This approach, however, does not allow for a general purpose solution to the performance monitoring problem.
Although the following Detailed Description will proceed with reference being made to illustrative embodiments, many alternatives, modifications, and variations thereof will be apparent to those skilled in the art.